package com.iuie.ns.system.mapper.report;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.iuie.ns.frame.persistence.annotations.MyBatisRepository;
import com.iuie.ns.system.vo.report.ReportParamsVO;

@MyBatisRepository
public interface ReportParamsMapper {

	/**
	 * 新增单条记录
	 * @param item
	 */
	void addOne(@Param("item") ReportParamsVO item);

	/**
	 * 根据ID查询单条记录
	 * @param reportId
	 * @param paramKey 
	 */
	ReportParamsVO findById(@Param("reportId") String reportId, @Param("paramKey") String paramKey);

	/**
	 * 根据ID删除单条记录
	 * @param reportId
	 */
	Integer deleteById(@Param("reportId") String reportId);

	/**
	 * 更新单条记录
	 * @param item
	 */
	void updateOne(@Param("item") ReportParamsVO item);

	/**
	 * 根据条件查询
	 * @param item
	 */
	List<ReportParamsVO> findByCondition(@Param("item") ReportParamsVO item);

	/**
	 * 根据报表Id删除报表参数
	 * @param reportId
	 * @return
	 * @date 2018年5月20日下午9:18:56
	 */
	Integer deleteByReportId(@Param("reportId") String reportId);

	/**
	 * 根据reportId和paramKey删除参数
	 * @param reportId
	 * @param paramKey
	 * @return
	 * @date 2018年5月21日上午8:45:21
	 */
	Integer deleteParamByReportIdAndParamKey(@Param("reportId") String reportId, @Param("paramKey") String paramKey);

	/**
	 * 查询参数，根据key,value形式获取Map
	 * @param reportId
	 * @return
	 * @date 2018年5月22日上午8:38:11
	 */
	List<ReportParamsVO> findByReportId(@Param("reportId") String reportId);

}